package com.cmc.cloud.cmclink.doc.vo.blnopaymentvo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;

import java.util.*;

import org.hibernate.validator.constraints.Length;

import java.time.LocalDateTime;
import java.time.LocalDateTime;
import javax.validation.constraints.*;

/**
 * 提单指定支付方式信息 Base VO，提供给添加、修改、详细的子 VO 使用
 * 如果子 VO 存在差异的字段，请不要添加到这里，影响 Swagger 文档生成
 *
 * @author codegen
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class BlnoPaymentBaseVO {

    @Schema(description = "提单主信息id", requiredMode = Schema.RequiredMode.REQUIRED, example = "24494")
    private Long blnoId;

    @Schema(description = "费用代码", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotBlank(message = "{blnopayment.chargecode.notblank}")
    @Length(max = 6, message = "{blnopayment.chargecode.length}")
    private String chargeCode;

    @Schema(description = "指定付款方式")
    @Length(max = 1, message = "{blnopayment.designatedpayment.length}")
    private String designatedPayment;

    @Schema(description = "默认付款方式")
    @Length(max = 1, message = "{blnopayment.defaultPayment.length}")
    private String defaultPayment;

    @Schema(description = "指定付费人")
    @Length(max = 50, message = "{blnopayment.designatedpayercode.length}")
    private String designatedPayerCode;

    @Schema(description = "打印标识", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "{blnopayment.printflag.notnull}")
    private Boolean printFlag;

    @Schema(description = "指定付款地")
    @Length(max = 5, message = "{blnopayment.paymentplace.length}")
    private String paymentPlace;

}
